1. Field
The present invention relates generally to wireless communications, and more specifically to interference cancellation.
2. Background
There exist many techniques to share a communications channel among multiple users. Examples of these techniques include code division multiple access (CDMA), orthogonal frequency-division multiplexing (OFDM), time division multiple access (TDMA), and others.
In some communications systems, such as CDMA, the multiple data streams from multiple users (or even a single user) are superposed on each other and received simultaneously. Interference is generated from the superposition of these multiple data streams. To decode a particular data stream for a user, the data stream can be decoded by treating the other data streams as uncorrelated noise. In some systems, as data streams are decoded they are reconstructed and fed back to subtract their contribution to the superposed or aggregated received signal before decoding of subsequent data streams. This technique is known as successive interference cancellation and can improve the utilization of a channel.
Present techniques for successive interference cancellation can be impractical to implement. For example, before all the signals may be decoded, a relatively large amount of data must typically be stored in a buffer. The size of this buffer can be economically impractical due to cost and power. Furthermore, it can be time-consuming and computationally complex to evaluate a relatively large amount of data. In addition, interference cancellation techniques can worsen interference when implemented in a high error rate environment. For example, a data stream that is improperly decoded and used in interference cancellation has the potential for increasing the number of errors when decoding the next successive data stream. In addition, in some systems, such as systems using a type II hybrid forward error correction/automatic repeat request (Type II Hybrid FEC/ARQ or “HARQ”), multiple data sub-packets with different puncture patterns are serially sent to the receiver and stored there. Several stored sub-packets may be combined in the receiver before the data is correctly decoded. Interference caused by a given sub-packet, once properly decoded, should not only be canceled from a current stream but also from prior streams stored in memory for which it interfered. The amount of memory consumed for storage of prior transmissions of sub-packets can be relatively large, particularly when used with multiple-input multiple-output (MIMO) systems. In addition, the task of managing these streams of data can be very complex and difficult to implement in practice. For these and other reasons, present techniques for successive interference cancellation are inadequate.